<?php
namespace App\Admin\Controllers\Traits\WxRealtimeTraits;

use App\Wen\Utils\Settings;
use App\Wen\Utils\SiteUtils;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Widgets\Form;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;

trait formTopicTrait{
    public function index_topic(Content $content)
    {
        return $content->title('话题热度榜')
//            ->body($this->buildPreviewButton())
//            ->body($this->newline())
            ->body(
                <<<HTML
<div class="card">{$this->form_topic()->render()}</div>
HTML
            );
    }
    protected function form_topic(){
        $form = new Form();
        $form->confirm('您确定要提交表单吗？', 'content');
        $form->disableResetButton();
        $form->html(function () {
            return '';
        }, '<b>一、话题榜</b>');
        $form->html(function () {
            return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">说明一下：默认按照所有话题10天之内的热度增量和进行排序，增长最快的x个话题会进入榜单，如果你的产生内容较少，可以设置更长的时间。</div>';
        }, '');
        $form->number('realtime_topic_degree_increment_keep_days', '增量保持天数')->help('默认保存10天话题的热度增量数据，如果站内活跃较少，也可以设置更长的时间。不是实时生效，15分钟系统系统响应一次')->default(Settings::get('realtime_topic_degree_increment_keep_days', 10));
        $form->number('realtime_topic_degree_increment_hot_num', '热标识最大个数')->help('热标识是根据当前3个小时增速最快的几个')->default(Settings::get('realtime_topic_degree_increment_hot_num', 3));
        $form->number('realtime_topic_degree_increment_hot_num_in_hours', '热标识时间范围/小时')->help('上面举例是3个小时，这里可以配置其他时长，如果你的社区活跃，就配置更短的时间')->default(Settings::get('realtime_topic_degree_increment_hot_num_in_hours', 3));
        $form->action('realtime/action/topic');
        return $form;
    }

    public function topic(Request $request){
        SiteUtils::forget_config_data();
        Settings::set('realtime_topic_degree_increment_keep_days', $request->input('realtime_topic_degree_increment_keep_days'), true);
        Settings::set('realtime_topic_degree_increment_hot_num', $request->input('realtime_topic_degree_increment_hot_num'), true);
        Settings::set('realtime_topic_degree_increment_hot_num_in_hours', $request->input('realtime_topic_degree_increment_hot_num_in_hours'), true);
        return $this->response()->success('成功！');
    }

}
